//
//  CPUITableViewCellUtil.swift
//  ComponentUtils
//
//  Created by wrs on 2018/7/23.
//  Copyright © 2018年 wrs. All rights reserved.
//

import Foundation
import UIKit

extension UITableViewCell {
//    var tableView: UITableView? {
//        get {
//            if let view = self.findTableView(self) {
//                return view
//            } else {
//                return nil
//            }
//        }
//    }
//    
//    private func findTableView(_ view: UIView) -> UITableView? {
//        if let tempView = view.superview {
//            if tempView.isKind(of: UITableView.classForCoder()) {
//                return tempView as? UITableView
//            } else {
//               return findTableView(tempView)
//            }
//        } else {
//             return nil
//        }
//    }
    
    public static func getCell(tableView: UITableView) -> UITableViewCell {
        let identify = getClassName()
        return UITableViewCell.getCell(tableView:tableView, identify: identify)
    }
     public static func getCell(tableView: UITableView, identify: String) -> UITableViewCell {
        return UITableViewCell.getCell(tableView: tableView, identify: identify, bundle: Bundle.main)
    }
    
    public static func getCell(tableView: UITableView, identify: String, bundle: Bundle) -> UITableViewCell {
        if let cell = tableView.dequeueReusableCell(withIdentifier: identify) {
            return cell
        } else {
            let cell: UITableViewCell = bundle.loadNibNamed(identify, owner: nil, options: nil)?.first as! UITableViewCell
            cell.selectionStyle = .none
            return cell
        }
    }

}

extension UICollectionView {
    func registerNib(_ cellClass: AnyClass) {
        let identify = NSStringFromClass(cellClass).components(separatedBy: ".").last!
        self.register(UINib(nibName: identify, bundle: nil), forCellWithReuseIdentifier: identify)
    }
    
    func register(_ cellClass: AnyClass) {
        let identify = NSStringFromClass(cellClass).components(separatedBy: ".").last!
        self.register(cellClass, forCellWithReuseIdentifier: identify)
    }
    
    func dequeueCell(_ cellClass: AnyClass, indexPath: IndexPath) -> UICollectionViewCell {
        let identify = NSStringFromClass(cellClass).components(separatedBy: ".").last!
        return self.dequeueReusableCell(withReuseIdentifier: identify, for: indexPath)
    }
}
